#include "Key.h"

void Key_Init(void)
{
	//按键两个端口设置为上拉输出的模式
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);	//第一步开启时钟
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;	//读取按键，要上拉输入模式
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_3 | GPIO_Pin_5 | GPIO_Pin_7;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;	//这里设置输出速度，按键是输入，所以此处设置无用，但还是填上
	
	GPIO_Init(GPIOA,&GPIO_InitStructure);
}

uint8_t Key_GetNum(void)
{
	uint8_t KeyNum = 0;
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1) == 0)	//读取PA1端口电平，0或1,0代表按下
	{
		Delay_ms(20);
		while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1) == 0)	//按键一直按下，就卡在这
		Delay_ms(20);
		KeyNum = 1;
	}
	
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3) == 0)	//读取PA1端口电平，0或1,0代表按下
	{
		Delay_ms(20);
		while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3) == 0)	//按键一直按下，就卡在这
		Delay_ms(20);
		KeyNum = 2;
	}
	
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_5) == 0)	//读取PA1端口电平，0或1,0代表按下
	{
		Delay_ms(20);
		while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_5) == 0)	//按键一直按下，就卡在这
		Delay_ms(20);
		KeyNum = 3;
	}
	
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_7) == 0)	//读取PA1端口电平，0或1,0代表按下
	{
		Delay_ms(20);
		while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_7) == 0)	//按键一直按下，就卡在这
		Delay_ms(20);
		KeyNum = 4;
	}

	return KeyNum;
}

